<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 只可通过原型对象.追加的方式扩展方法
        Array.prototype.sum = function () {
            var sum = 0
            for (var i = 0; i < this.length; i++) {
                sum += this[i]
            }
            return sum
        }
        // var arr = [1, 2, 3]
        // 通过Array实例化的对象都可使用 因为原型链查找
        var arr = new Array(1, 2, 3)
        var arr1 = new Array(2,3,4)
        console.log(arr.sum());//6
        console.log(arr1.sum());//9
        console.log(arr);//实例对象 内置__porto__原型
        console.log(arr1);//实例对象 内置__porto__原型
        console.log(Array.prototype);//原型对象里已追加了sum()方法了

        // Array.prototype = {
        //     sum: function () {
        //         for (var i = 0; i < this.length; i++) {
        //             sum += this[i]
        //         }
        //         return sum
        //     }
        // }
        // var arr = new Array(1, 2, 3)
        // // 赋值操作会覆盖原型对象所以添加不了方法。
        // console.log(arr.sum());//报错 不可使用赋值对象的方法去扩展原型内置对象



    </script>
</body>

</html>